package com.fand.platform.configuration.service;

import java.util.List;
import java.util.Map;

import com.fand.cache.support.CacheEvictSupport;
import com.fand.dto.PaginationDto;
import com.fand.platform.configuration.dto.LanguageDto;

/**
 * 语言服务
 * 
 * @author yaoHT
 */
public interface LanguageService extends CacheEvictSupport {
	String BEAN_ID = "com.fand.platform.configuration.service.LanguageService";

	String CACHE_NAME = LanguageService.BEAN_ID + "Cache";

	/**
	 * 保存:语言
	 * 
	 * @param saveLanguage
	 *            语言对象
	 * 
	 * @return 语言对象
	 */
	LanguageDto saveLanguageByIdOrCodeForLanguage(LanguageDto saveLanguage);

	/**
	 * 保存:语言
	 * 
	 * @param saveLanguage
	 *            语言对象
	 * 
	 * @return 语言对象
	 */
	LanguageDto saveLanguageBy2ForLanguage(LanguageDto saveLanguage);

	/**
	 * 删除:语言
	 * 
	 * @param deleteLanguage
	 *            语言对象
	 * 
	 * @return 影响行数
	 */
	int deleteLanguageBy1(LanguageDto deleteLanguage);

	/**
	 * 删除:语言
	 * 
	 * @param deleteLanguage
	 *            语言对象
	 * 
	 * @return 影响行数
	 */
	int deleteLanguageByIds(LanguageDto deleteLanguage);

	/**
	 * 设置:语言
	 * 
	 * @param setLanguage
	 *            语言对象
	 * 
	 * @return 影响行数
	 */
	int setLanguageBy1(LanguageDto setLanguage);

	/**
	 * 设置:语言
	 * 
	 * @param setLanguage
	 *            语言对象
	 * 
	 * @return 影响行数
	 */
	int setLanguageBy2(LanguageDto setLanguage);

	/**
	 * 读取:语言
	 * 
	 * @param readLanguage
	 *            语言对象
	 * 
	 * @return 语言对象
	 */
	Integer readLanguageByCodeNqIdForInteger(LanguageDto readLanguage);

	/**
	 * 读取:语言
	 * 
	 * @param readLanguage
	 *            语言对象
	 * 
	 * @return 语言对象
	 */
	Integer readLanguageBy2ForInteger(LanguageDto readLanguage);

	/**
	 * 读取:语言
	 * 
	 * @param readListLanguage
	 *            语言对象
	 * 
	 * @return 语言对象集合
	 */
	List<Integer> readListLanguageBy1(LanguageDto readLanguage);

	/**
	 * 读取:语言
	 * 
	 * @param readListLanguage
	 *            语言对象
	 * 
	 * @return 语言对象集合
	 */
	List<Integer> readListLanguageBy2(LanguageDto readLanguage);

	/**
	 * 查询:语言
	 * 
	 * @param getLanguage
	 *            语言对象
	 * 
	 * @return 语言对象
	 */
	LanguageDto getLanguageBy1(LanguageDto getLanguage);

	/**
	 * 查询:语言
	 * 
	 * @param getLanguage
	 *            语言对象
	 * 
	 * @return 语言对象
	 */
	LanguageDto getLanguageById(LanguageDto getLanguage);

	/**
	 * 查询:语言
	 * 
	 * @param findLanguage
	 *            语言对象
	 * 
	 * @return 语言对象集合
	 */
	List<LanguageDto> findLanguageBy1(LanguageDto findLanguage);

	/**
	 * 查询:语言
	 * 
	 * @param findLanguage
	 *            语言对象
	 * 
	 * @return 语言对象集合
	 */
	List<LanguageDto> findLanguageBy2(LanguageDto findLanguage);

	/**
	 * 分页:语言
	 * 
	 * @param paginationLanguage
	 *            语言对象
	 * 
	 * @return 语言分页对象
	 */
	PaginationDto<LanguageDto> paginationLanguageBy1ForLanguageList(LanguageDto paginationLanguage);

	/**
	 * 分页
	 * 
	 * @param paginationLanguage
	 *            语言对象
	 * 
	 * @return 语言分页对象
	 */
	PaginationDto<Map<String, Object>> paginationLanguageBy1ForMapList(LanguageDto paginationLanguage);
}